量化交易30天
本系列文章是紀錄一位量化交易新手的學習過程,除了基礎的Python語法不說明,其他金融相關的東西都會一步步地說明,希望讓更多想學習量化交易但是沒有學過相關金融知識的朋友們,透過這系列的文章,能夠對量化交易略知一二,也歡迎量化交易的高手們多多交流。
量化交易的第一步,當然就是要先拿到股票的價量資料,目前市面上有許多免費的API可以拿到股票資料,而這邊我會使用Tiingo這個資料平台,因為它免費可以使用的量還蠻多的,免費用量如下表:
可以看到最下面Tiingo API的部份,每個月可以使用500檔標的(symbols)資料、每小時500個requests、每日最多requests是20000次、每月5GB的用量。
接下來就來介紹如何使用Tiingo的資料:
import os
import pandas_datareader as pdr
SPY = pdr.get_data_tiingo('SPY', api_key='XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX')
這樣就拿到美股的資料啦,是不是非常簡單!拿到的資料有包含Open、High、Low、Close(取第一個字母,就稱作OHLC data),以及volume(成交量),不過這些都是未還原的數值,一般分析會使用的是後面開頭有adj的欄位資料,而Tiingo也很貼心的把divCash(發放現金股利)、splitFactor(股票分割)的資料也一起納入,非常方便阿!
date | close | adjClose | volume | adjVolume | splitFactor |
---|---|---|---|---|---|
2020-08-28 | 499.23 | 124.8075 | 46907479 | 187629916 | 1 |
2020-08-31 | 129.04 | 129.0400 | 223505733 | 223505733 | 4 |
2020-09-01 | 134.18 | 134.1800 | 152470142 | 152470142 | 1 |
股票分割:就是將原有的股票,按照分割比例,1股分割成多股,通常進行股票分割的目的是降低每股股價,讓資本較小的投資人更容易買進。
AAPL這次的股票分割日是2020-08-31,股票分割比(split factor)是4,代表的就是將1股分割成4股,由於分割後AAPL的股票市值要保持不變,所以分割日前的收盤價應該要除以4,如同8/28號的資料,收盤價(close)是499.23,還原收盤價(adjClose)則是124.8075,就是用499.23除以4得到的數字,以此類推,交易量volume應該是乘以4,因為分割後股數變多了。
所以在做分析的時候,由於資料的一致性,通常就用還原後的價量資料,會是比較好的方式。
本篇總結
這篇寫了抓取Tiingo API的資料,也說明各個資料欄位代表什麼意義,以及科普什麼是還原資料、股票分割,接下來就要開始運用這些資料做點什麼啦,請繼續收看下篇文章。
P.S.
如果大家對於量化交易有興趣的話,我自己有上過以下這門課,課程內容從串接股市資料API、儲存至資料庫、將自己的策略轉化成程式碼、自動下單,並且可以把整個流程自動化,每天早上執行一次,一整天就不用看盤了,覺得是蠻實戰的,可以參考看看。
筆者 Sean
奈米戶投資人 / Python愛用者
喜歡用Python玩轉金融數據,從個股基本面、技術面、籌碼面相關資料,一直到總體經濟數據,都是平常接觸到的素材;對於投資,除了研究歷史數據,也喜歡瞭解市場上大家在玩些什麼。